perm filename HUM[1,JRA] blob
sn#595743 filedate 1981-06-20 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00009 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002
C00003 00003 A Rationale for "Computing and Culture"
C00017 00004 A DETAILED OUTLINE OF "COMPUTERS AND CULTURE"
C00020 00005
C00023 00006
C00026 00007
C00029 00008
C00032 00009 QUALIFICATIONS
C00037 ENDMK
C⊗;
terry,
Attached is a course outline that I proposed to do next fall at Santa Clara
University. Due to some bureaucratic soft-shoe work, it's stalled for at least
six-months. Doug Hofstatder suggested that you might know of a nitch
at Stanford that would fit it. It's a cross between "Mindstorms" and "GEB",
doing a "no bullshit" computer literacy course for undergraduates.
Any suggestions or comments on the approach would also be welcome.
John Allen JRA@SU-AI
A Rationale for "Computing and Culture"
In the past, there have been several examples of individuals who have been able
to present potentially complex ideas in a broad setting that illuminates the
kernel notions while not diminishing their intellectual rigor.
Robert Pirsig, in "Zen and the Art of Motorcycle Maintenance", used the medium
of a novel to present and discuss deep philosophical issues.
Douglas Hofstadter's Pulitzer Prize winning non-fiction work, "Godel, Escher,
Bach", made deep results in mathematics and logic accessible to people who had
no prior inkling of the elegance and beauty of mathematics.
I have designed this course with the same goal: here to expose novices to the
essential beauty of mathematics, logic, and computation using the vehicle of
interactive computing and personal computers. Within this "scientific" context
one must also address the "humanistic" issues: the impact of computing, and
machines in general, on society. Some of these issues have been of concern for
centuries; others are a product of the computer age. It is cause for optimism
that such a course is desired now, for we have an opportunity to de-fuse another
potential arts/science conflict. The personal computer may be used to merge,
rather than split, the concerns of the humanist and the technologist. That is
the ultimate purpose of this course.
The course content, therefore flows from a logical (mathematical) basis that
explicates the notions of computation and establishes common terminology, to the
humanistic concerns that relate to the application of these notions. To resolve
this tension between scientific and humanistic perspectives, we use the personal
computer. This device --the computational device most likely to be of concern to
the individual in the future-- is used to exemplify the notions and substantiate
the claims that appear in the scientific portion; further, the machines can be
used to help dispell misconceptions about the power (or lack of power)
attributed to computers, as well as demonstrate the applications that the
participants will encounter outside the University. Thus, an interactive
programming laboratory, based on personal machines, is an integral part of this
course.
The following, is a short, tentative, description of the course outline.
In this course:
(1) we use "Zen" to set the tone: the philosophical relationship between art
and science;
(2) we use parts of "Godel, Escher, Bach" to discuss some ideas in Truth,
Deduction, and Computation.
(3) we use "Mindstorms" as an overview of how personal computing can supply a
non-threatening but educational tool. The language of "Mindstorms"
--LOGO-- is no toy; it is the basis of the current program at MIT to
revise their undergraduate mathematics and physics curricula.
(4) we dip into the arts and sciences for perspectives on the computing
phenomenon. This includes reading Weizenbaum's "Computer Power and Human
Reason", selections from Mumford's "Technics and Civilization",
Georgescu-Roegen's "Analytical Ecomonics", and Spengler's "Decline of the
West". And finally,
(5) the technical substance underlying this discussion is based on my lectures.
I draw this material from my background in theoretical and practical
mathematics and computer science. We build from LOGO to a LISP-like
language that is adequate to expose the computational ideas that implement
the LOGO notions. These ideas are at the heart of the concept called
"object-oriented programming" --a modern notion of computing that is the
basis of the newest computer architectures and programming languages. On
the software side, we elaborate on the LISP/LOGO model to introduce
Smalltalk-80 --Xerox's personal computer language that is used for
education as well as office automation.
(6) we combine perspectives to examine the technical and philosophical issues
related to the construction of "artificially intelligent" systems: how is
it attempted? Are the results shallow or deep; potentially positive or
negative?
(7) finally, we expect to supply guest speakers to help place the class
material in perspective.
Within this context, we have access to a special version of LOGO devloped at MIT
for the Apple II personal computer. This gives the student the opportunity to
explore non-trivial applications of interactive graphical programming ideas.
Furthermore, several excellent software systems are available for the Tandy
Radio Shack Model II computer. My current recommendation would be for a "local
network" utilizing both Apple II and TRS Model II computers; such a local
network, supplying communication and pooled resources, is commercially
available.
I have been developing the material for a course like this for over a decade,
with the mathematical side converging first, and the philosophical concerns only
beginning to be well-founded in the last few years, and in some cases, few
months. At Santa Clara, much the material has been refined through two graduate
classes and the spring undergraduate offering, EECS129. I am pleased with the
current content and continuity; I feel the material is ready, and current events
say that the society is ready. It is encouraging to see that the University is
ready too.
I expect high standards in both philosophical and technical performance; and we
will deal heavily in both issues. The course is designed to challenge the best
in students; it is not a "watered down" technical presentation; it is
self-contained approach that any concerned individuals can call their own.
Those who complete this course will have:
(1) an understanding of fundamental computing ideas that will outlive
transient technology.
(2) an understanding of how those ideas relate to the technology that they see.
(3) experienced personal computing in a context that they may pursue on their
own if they so desire.
Bibliography
Required reading:
Zen and the Art of Motorcycle Maintenance -- Robert Pirsig
A novel dealing with an analysis and resolution of the conflicts between the
Arts and Sciences.
Mindstorms: Children, Computers, and Powerful Ideas -- Seymour Papert
A detailed report on the educational applications of the personal computing
language, LOGO. Emphasis is on the opportunity to use computing to teach
thinking; in particular, to address the problems of "mathophobia".
Class notes -- John Allen
On computing, LISP, LOGO, Smalltalk, AI, applications, and philosophy.
Computer Power and Human Reason -- Joseph Weizenbaum
A discussion of some issues related to computation, particularly the possible
misuses of artificial intelligence.
Partial readings:
Godel, Escher, Bach: An Eternal Golden Braid -- Douglas Hofstadter
A recent Pulitzer prize-winning non-fiction work, relating mathematical,
musical, and artistic notions.
Decline of the West, Vol 1: Form and Actuality -- Oswald Spengler
A massive treatment of culture and history. The major issue for this course
is his treatment of a culture's perspective in terms of its treatment of
mathematical ideas.
Analytical Economics -- Nicholas Georgescu-Roegen
The introduction --expanded later to a book, "The Entropy Law and the
Economic Process"-- deals with fundamental issues in science, mathematics,
and physics. Of particular interest is his clarification of the differences
between the mechanistic view that typifies traditional science, and the
dialectial notions (fuzzy) that are finding their place in modern physics: an
elegant technical discussion of the notions of quantity and quality.
Technics and Civilization -- Lewis Mumford
A history of machines and an examination of their impact on society.
Sense of the Future --Jacob Bronowski
Science and Human Values, and Knowledge and Imagination are also quite worthwhile
A DETAILED OUTLINE OF "COMPUTERS AND CULTURE"
WEEK 1: COURSE OVERVIEW AND PERSPECTIVE ON COMPUTING
Reading: "Zen and the Art of Motorcycle Maintenance"
"Mindstorms", Chapters 1-3
Lab: LOGO
Mince: a display-based word-processor
Lectures:
Methodology vs. Style in human endeavor
interactive composition vs. programming
composition
creative rhetoric
the rationale: improved expression
the tools: instrument-like
the effect: ego-less composition
Programming
what does programming represent?
ways of thinking (algorithmically)
simulation of complex phenomena
can programmers be literate?
literacy=?
Notation
The role of notation in science
expressivity
subordination of detail
economy
amenability to proof
The impact of computing on notation
executability
representability of algorithms
The difficulties with programming languages
Computation and interaction
The relationship between language and its medium
why computing languages cannot be separated
from the programming environment
cf. conversation and understanding
The polarization between interaction and discipline
in whose province does discipline lie?
the language designer: Pascal
the individual: LISP
Examples of language philosophy
LOGO, Smalltalk, LISP
the notion of abstract objects.
LOGO turtles.
--------------------------------------------------------------
WEEK 2: A DETAILED DISCUSSION OF THE PHENOMENON OF COMPUTATION.
Reading: "Mindstorms", Chapter 4
"Godel, Escher, Bach": on formalisms
Lab: Mince
LOGO
Lectures:
The language: functions and data
Data domain: The whole numbers
Algorithmic notation
conditional expressions
definitions
recursion
numerical examples
computation as deduction
axioms for number
rules of inference
substitution and simplification rules
for numeric operations
for conditional
computation as controlled deduction
substitution strategies and termination
simplification as substitutivity of =
indistinguishibility of = objs.
truth, computation, and deduction
what is truth?
truth versus deduction
--------------------------------------------------------------
WEEK 3: AN INVESTIGATION OF OBJECTS AND THEIR IMPLEMENTATION.
Reading: Class notes on LISP and LOGO
Lab: LISP
Lectures: The extension of the notions to non-numeric objects
Data domains: abstract objects
constructors, selectors, and recognizers
Data Domain: graphics
LOGO and Turtle geometry
abstraction and representation:
finite sets →representation→ finite sequences
↓↓↓ ↓↓↓
sets build functions sequences build computation
Data Domain: symbolic expressions
the representability of programs
The mapping of expressions to data structures
Non-numeric computation: examples
evaluation of polynomials
simplification of algebraic expressions
turtle geometry
--------------------------------------------------------------
WEEK 4: USING COMPUTATION TO STUDY COMPUTATION:
A "Strange Loop"(Godel, Escher, Bach).
Reading: Class notes on LISP
"Godel, Escher, Bach" on strange loops
Lab: LISP
Lectures:
Evaluation
Deduction vs computation, again
systems for substitution and simplification
simulation of substitution by symbol tables
symbol tables as objects
Representability of programs
use versus mention
An evaluation algorithm
The operational view
Implementation strategies
simulation of substitution
Extending the evaluator
A modern LISP: an object-oriented language
The idea of "first-class data"
implementation-driven languages violate notational principles
abstract object: their representation revisited.
--------------------------------------------------------------
WEEK 5: OBJECT-ORIENTED PROGRAMMING AND MESSAGE-PASSING.
Reading: Smalltalk Papers (available August 1981)
"Mindstorms", Chapters 5-6
Class notes on LISP and Smalltalk
Lab: LISP and Smalltalk (should be available then)
Lectures:
Object-oriented programming with Message-passing.
Smalltalk and Actors
the languages and examples of their application
the notion of message-passing
Classes and Heirarchies
the superstructure of classes
their relationship to data types in other languages
Relationship between message-passing and functional programming.
--------------------------------------------------------------
WEEK 6: ARTIFICIAL INTELLIGENCE AND ITS IMPLICATIONS.
Reading: "Computer Power and Human Reason"
"Mindstorms", Chapters 7-8
"Technics and Civilization"
"Godel, Escher, Bach" on AI
Lab: LISP, Smalltalk, and LOGO examples
applications packages: Mu-Math, and Visicalc
simple "understanding programs": Zork
Lectures:
What constitutes an AI system?
the knowledge base: facts and rules
the utilization of the information: pattern matching
the control of the system: goal-directed deduction
the introspection: justifications and programs as data
the interface: natural language
Where's the "intelligence"?
can systems explan their actions: responsible systems?
can systems learn? can they be told?
is the whole greater than the sum of its parts?
AI: threat or promise?
--------------------------------------------------------------
WEEK 7: HISTORY, PHILOSOPHY, MATHEMATICS, AND COMPUTATION.
Reading: "Mindstorms", Epilogue
"Decline of the West"
Lab: LISP and Smalltalk projects
Lectures:
The arts-sciences dichotomy: real or imagined
The view of mathematics in cultures
Classical - geometric - sense data
Western - functional - space
Computer - computational - abstract objects
The foundations of science: abstraction and discretely distinct objects
sense data and chronological time: clocks
sense data and mechanics: Newtonian physics
Traditional logics versus reality
logics for AI
--------------------------------------------------------------
WEEK 8: QUALITY AND QUANTITY: ART AND SCIENCE.
Reading: "Decline of the West"
"Analytical Economics"
Lab: LISP and Smalltalk projects
Lectures:
Logics for reality: how to handle dialectical concepts
non-monotonic reasoning
Artificial Intelligence as a "humanistic" endeavor
a sympathetic (as compared to Weizenbaum) interpretation
of the AI field.
--------------------------------------------------------------
WEEK 9 - 10: GUEST SPEAKERS AND SUMMARY
Lab: speakers may be scheduled during this time.
--------------------------------------------------------------
SOFTWARE: Mince: A display-based editor (Mince Is Not Complete Emacs)
LOGO: Graphics-based functional language.
LISP: Object-oriented functional programming language for AI.
Visicalc: An elegant display-based business package with AI underpinnings.
Mu-math: Symbolic mathematics package.
Zork: Computer version of a Dungeons and Dragons-like game exhibiting
a good natural language interface and illustrating
a very complex program on a small machine.
Other software could be made available: UCSD Pascal, data-base languages,
or more traditional programming systems.
QUALIFICATIONS
Though a detailed resume does not seem necessary, a short discussion of my
qualifications and reasons for proposing this course does seem appropriate.
I am educated and trained in mathematics, logic, and computer science; over
twenty years in the latter field. I have done research and work in the areas of
artificial intelligence, its theory, practice, and the design of languages and
machine architectures for such ventures. Before teaching at Santa Clara, I
taught for two years at UCLA as assistant professor of computer science, and
have also taught mathematics and computer science at the Santa Barbara and Santa
Cruz campuses of UC, and at San Jose State University. I have published the
major book on LISP, the mainstay language of artificial intelligence.
In the last several years I have become increasingly anxious about the real
misuse and misunderstanding of existing computers, and the potential problems
that await us as computers become more ubiquitous and perhaps more
"intelligent.". I see these difficulties as resulting from ignorance;
unfortunate ignorance, since the computing notions that support even our most
advanced computers are no more complex that those needed to grasp high school
algebra. I immediate concern is to expose students to these ideas so that they
may make informed decisions for themselves. My longer range goals involve the
packaging of these ideas in a form that will be within the grasp of high school
level students. It is here that computational ideas, presented in the guise of
personal computing, offer much potential to revitalize the mathematics and
sciences curricula.
Indeed, moves in this direction are already afoot. At MIT, the LOGO group has
developed a primary grade program to teach "thinking". Some of this work is
documented in "Mindstorms", referenced in the bibliography; I strongly recommend
this book. Furthermore, the MIT experience with LOGO is being expanded into a
program to reform the MIT undergraduate mathematics and physics core. That a
major, scientifically inclined, university would consider curriculum revision
using a language designed for "kids of all ages", speaks highly of the approach.
On the west coast, Xerox's research establishment in Palo Alto has, for about
ten years, been developing a LOGO derivative called Smalltalk. This language,
again, spans a wide range of applications: secondary grade students, working
artists, animators, and muscians, and office automation software.
Both of these efforts are encouraging, however neither deals explicitly with the
fundamental issues of computing, rather stressing epistemology (LOGO) or
applications (Smalltalk). A detailed treatment of the kernel ideas of computing
has not been attempted; it is this area that holds the fundamental principles;
it is this area that I am developing: the fundamental principles of computation
and their effect on society.